<?xml version="1.0"?>
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="MyFileModel" xmlns="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
  <LobSystems>
    <LobSystem Name="MyFileSystem" Type="Custom">
      <Properties>
        <Property Name="SystemUtilityTypeName" Type="System.String">MyFileConnector.MyFileConnector, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property>
        <Property Name="InputUriProcessor" Type="System.String">MyFileConnector.MyFileLobUri, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property>
        <Property Name="OutputUriProcessor" Type="System.String">MyFileConnector.MyFileNamingContainer, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8</Property>
      </Properties>
      <LobSystemInstances>
        <LobSystemInstance Name="MyFileConnector_instance" />
      </LobSystemInstances>
      <Entities>
        <Entity Name="MyFolder" Namespace="MyFileConnector" Version="1.0.0.1">
          <Properties>
            <Property Name="Title" Type="System.String">Name</Property>
          </Properties>
          <Identifiers>
            <Identifier Name="PathID" TypeName="System.String" />
          </Identifiers>
          <Methods>
            <Method Name="GetFolders" LobName="GetFolders">
              <Parameters>
                <Parameter Name="parentFolderPath" Direction="In">
                  <TypeDescriptor
                      Name="parentFolderPath"
                      TypeName="System.String"
                      IdentifierEntityNamespace="MyFileConnector"
                      IdentifierEntityName="MyFolder"
                      IdentifierName="PathID"
                      ForeignIdentifierAssociationName="GetFolders_Instance"
                      ForeignIdentifierAssociationEntityName="MyFolder"
                      ForeignIdentifierAssociationEntityNamespace="MyFileConnector"/>
                </Parameter>
                <Parameter Name="Return" Direction="Return">
                  <TypeDescriptor Name="Return" TypeName="MyFileConnector.MyFolder[], MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8" IsCollection="true">
                    <TypeDescriptors>
                      <TypeDescriptor Name="Item" TypeName="MyFileConnector.MyFolder, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8">
                        <TypeDescriptors>
                          <TypeDescriptor Name="Path" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFolder" IdentifierName="PathID" />
                          <TypeDescriptor Name="LastModified" TypeName="System.DateTime" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <Association Name="GetFolders_Instance" Type="AssociationNavigator" ReturnParameterName="Return" ReturnTypeDescriptorName="Return">
                  <Properties>
                    <Property Name="DirectoryLink" Type="System.String">x</Property>
                    <Property Name="LastModifiedTimeStampField" Type="System.String">LastModified</Property>
                  </Properties>
                  <AccessControlList>
                    <AccessControlEntry Principal="NT AUTHORITY\Authenticated Users">
                      <Right BdcRight="Execute" />
                    </AccessControlEntry>
                  </AccessControlList>
                  <SourceEntity Name="MyFolder" Namespace="MyFileConnector" />
                  <DestinationEntity Name="MyFolder" Namespace="MyFileConnector" />
                </Association>
              </MethodInstances>
            </Method>
            <Method Name="GetSpecifiedFolder" LobName="GetSpecifiedFolder">
              <Parameters>
                <Parameter Name="folderPath" Direction="In">
                  <TypeDescriptor Name="folderPath" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFolder" IdentifierName="PathID" />
                </Parameter>
                <Parameter Name="Return" Direction="Return">
                  <TypeDescriptor Name="Return" TypeName="MyFileConnector.MyFolder, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8">
                    <TypeDescriptors>
                      <TypeDescriptor Name="Name" TypeName="System.String" />
                      <TypeDescriptor Name="Path" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFolder" IdentifierName="PathID" />
                      <TypeDescriptor Name="LastModified" TypeName="System.DateTime" />
                      <TypeDescriptor Name="SecurityDescriptor" TypeName="System.Byte[]" IsCollection="true">
                        <TypeDescriptors>
                          <TypeDescriptor Name="Item" TypeName="System.Byte" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Name="GetSpecifiedFolder_Instance" Type="SpecificFinder" ReturnParameterName="Return" ReturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0">
                  <Properties>
                    <Property Name="WindowsSecurityDescriptorField" Type="System.String">SecurityDescriptor</Property>
                    <Property Name="LastModifiedTimeStampField" Type="System.String">LastModified</Property>
                  </Properties>
                  <AccessControlList>
                    <AccessControlEntry Principal="NT AUTHORITY\Authenticated Users">
                      <Right BdcRight="Execute" />
                    </AccessControlEntry>
                  </AccessControlList>
                </MethodInstance>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>      
        <Entity Name="MyFile" Namespace="MyFileConnector" Version="1.0.0.1">
          <Properties>
            <Property Name="Title" Type="System.String">Name</Property>
          </Properties>
          <Identifiers>
            <Identifier Name="PathID" TypeName="System.String" />
          </Identifiers>
          <Methods>
            <Method Name="GetFiles" LobName="GetFiles">
              <Parameters>
                <Parameter Name="folderpath" Direction="In">
                  <TypeDescriptor Name="folderpath" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFolder" IdentifierName="PathID" ForeignIdentifierAssociationName="GetFiles_Instance" ForeignIdentifierAssociationEntityName="MyFile" ForeignIdentifierAssociationEntityNamespace="MyFileConnector"/>
                </Parameter>
                <Parameter Name="Return" Direction="Return">
                  <TypeDescriptor Name="Return" TypeName="MyFileConnector.MyFile[], MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8" IsCollection="true">
                    <TypeDescriptors>
                      <TypeDescriptor Name="Item" TypeName="MyFileConnector.MyFile, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8">
                        <TypeDescriptors>
                          <TypeDescriptor Name="Path" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFile" IdentifierName="PathID" />
                          <TypeDescriptor Name="LastModified" TypeName="System.DateTime" />
                          <TypeDescriptor Name="Extension" TypeName="System.String" />
                          <TypeDescriptor Name="ContentType" TypeName="System.String" />
                          <TypeDescriptor Name="SecurityDescriptor" TypeName="System.Byte[]" IsCollection="true">
                            <TypeDescriptors>
                              <TypeDescriptor Name="Item" TypeName="System.Byte" />
                            </TypeDescriptors>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <Association Name="GetFiles_Instance" Type="AssociationNavigator" ReturnParameterName="Return" ReturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0">
                  <Properties>
                    <Property Name="DirectoryLink" Type="System.String">x</Property>
                    <Property Name="LastModifiedTimeStampField" Type="System.String">LastModified</Property>
                    <Property Name="WindowsSecurityDescriptorField" Type="System.String">SecurityDescriptor</Property>
                  </Properties>
                  <AccessControlList>
                    <AccessControlEntry Principal="NT AUTHORITY\Authenticated Users">
                      <Right BdcRight="Execute" />
                    </AccessControlEntry>
                  </AccessControlList>
                  <SourceEntity Name="MyFolder" Namespace="MyFileConnector" />
                  <DestinationEntity Name="MyFile" Namespace="MyFileConnector" />
                </Association>
              </MethodInstances>
            </Method> 
            <Method Name="GetSpecifiedFile" LobName="GetSpecifiedFile">
              <Parameters>
                <Parameter Name="filepath" Direction="In">
                  <TypeDescriptor Name="filepath" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFile" IdentifierName="PathID" />
                </Parameter>
                <Parameter Name="Return" Direction="Return">
                  <TypeDescriptor Name="Return" TypeName="MyFileConnector.MyFile, MyFileConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=15865f58b9878bf8">
                    <TypeDescriptors>
                      <TypeDescriptor Name="Name" TypeName="System.String" />
                      <TypeDescriptor Name="Path" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFile" IdentifierName="PathID" />
                      <TypeDescriptor Name="LastModified" TypeName="System.DateTime" />
                      <TypeDescriptor Name="SecurityDescriptor" TypeName="System.Byte[]" IsCollection="true">
                        <TypeDescriptors>
                          <TypeDescriptor Name="Item" TypeName="System.Byte" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                      <TypeDescriptor Name="Extension" TypeName="System.String" />
                      <TypeDescriptor Name="ContentType" TypeName="System.String" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Name="GetSpecifiedFile_Instance" Type="SpecificFinder" ReturnParameterName="Return" ReturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0">
                  <Properties>
                    <Property Name="WindowsSecurityDescriptorField" Type="System.String">SecurityDescriptor</Property>
                    <Property Name="LastModifiedTimeStampField" Type="System.String">LastModified</Property>
                  </Properties>
                  <AccessControlList>
                    <AccessControlEntry Principal="NT AUTHORITY\Authenticated Users">
                      <Right BdcRight="Execute" />
                    </AccessControlEntry>
                  </AccessControlList>
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method Name="GetFileStream" LobName="GetFileStream">
              <Parameters>
                <Parameter Name="filepath" Direction="In">
                  <TypeDescriptor Name="filepath" TypeName="System.String" IdentifierEntityNamespace="MyFileConnector" IdentifierEntityName="MyFile" IdentifierName="PathID" />
                </Parameter>
                <Parameter Name="Return" Direction="Return">
                    <TypeDescriptor Name="Return" TypeName="System.IO.FileStream" />
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Name="GetFileStream_Instance" Type="StreamAccessor" ReturnParameterName="Return" ReturnTypeDescriptorName="Return" ReturnTypeDescriptorLevel="0">
                  <Properties>
                    <Property Name="ContentType" Type="System.String">ContentType</Property>
                    <Property Name="Extension" Type="System.String">Extension</Property>
                  </Properties>
                  <AccessControlList>
                    <AccessControlEntry Principal="NT AUTHORITY\Authenticated Users">
                      <Right BdcRight="Execute" />
                    </AccessControlEntry>
                  </AccessControlList>
                </MethodInstance>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
      </Entities>
    </LobSystem>
  </LobSystems>
</Model>